함수형 인터페이스

#Java

1. 람다, 메서드 참조와 함수형 인터페이스

함수형 인터페이스는 람다, 메서드 참조와 관련이 있어서 메서드 참조포스트를 보면서 함께 이해하는 것이 도움이 될 것 같다. 람다나 메서드 참조를 사용하기 위해, 메서드를 인자로 넘기거나 변수에 할당하기 위해 사용하는 것이 함수형 인터페이스이다. 조금 더 정확히 말하면 '메서드를 가진 객체'를 인자로 넘기거나 변수에 할당하기 위해 타입으로 사용되는 인터페이스이다.


2. 함수형 인터페이스 표준 API

함수형 인터페이스 표준 API 총정리, 인파

함수형 인터페이스는 우리가 만들수도 있다. 하지만 함수형 인터페이스를 사용하는 유즈케이스는 거의 대부분 몇가지로 추려진다. 자바에서는 이것을 표준 API로 정해놓았다.
큰 종류로는 6가지가 있고, 각각의 종류에 세부 사용 상황에 대한 API가 추가되어 있다.

2-1. 함수형 인터페이스 표준 API 종류

위의 인파님의 포스트에 종류와 사용방법은 아주 잘 정리되어 있다.
여기서는 어떤 API류를 찾아가야 하는지만 잡아보자
종류는 Runnable, Consumer, Supplier, Function, Predicate, Operator가 있다.

interface Runnable {
	void run()
}

interface Consumer<T> {
	void accept(T t)
}

interface Supplier<T> {
	T get()
}

interface Function<T, R> {
	R apply(T t)
}

interface Predicate<T> {
	boolean test(T t)
}

interface Operator<T, R> {
	R applyAs(T t)
}